package com.grantheath.erebus.view.interfaces 
{
	import com.grantheath.erebus.model.interfaces.IErebusAssetNode;
	import com.grantheath.erebus.model.interfaces.IErebusPageNode;
	
	import flash.events.IEventDispatcher;
	import flash.display.DisplayObjectContainer;

	/**
	 * @author grantheath
	 */
	public interface IErebusPagePreloader extends IEventDispatcher
	{
		function initializePreloader(pageNode : IErebusPageNode) : void;
		function unitializePreloader() : void;
		function onPageOpen(pageNode : IErebusPageNode = null) : void;
		function onPageComplete(pageNode : IErebusPageNode = null) : void;
		function onPageProgress(pageNode : IErebusPageNode = null) : void;
		function onPageError(pageNode : IErebusPageNode = null) : void;
		function onAssetOpen(assetNode : IErebusAssetNode = null) : void;
		function onAssetComplete(assetNode : IErebusAssetNode = null) : void;
		function onAssetProgress(assetNode : IErebusAssetNode = null) : void;
		function onAssetError(assetNode : IErebusAssetNode = null) : void;
		function get transitionHandeler() : IErebusTransitionHandeler;
		function get isTransitioning() : Boolean;
		function set isTransitioning(transitioning : Boolean) : void;
		function get transitionInterupted() : Boolean;
		function set transitionInterupted(transitionInterupted : Boolean) : void;
		function get pageNode() : IErebusPageNode;
		function get preloaderLayer() : DisplayObjectContainer;
	}
}
